from django.http import HttpResponseRedirect
from django.utils.datetime_safe import datetime
from legendofkrouzt.decorators import not_character
from legendofkrouzt.mensagem.forms import FormMensagem
from legendofkrouzt.mensagem.models import Mensagem
from legendofkrouzt.personagem.models import Personagem
from legendofkrouzt.views import TemplatePersonagem

@not_character
def index(request):
    mensagem = Mensagem.objects.filter(destinatario=request.session['id_Personagem'])
    return TemplatePersonagem(request,'mensagem/index.html',locals())

@not_character
def criar(request):
    if(request.method == 'POST'):
        destinatario = request.POST['destinatario'].split(',')
        personagem = Personagem.objects.get(pk=request.session['id_Personagem'])
        if(request.session['id_Personagem'] in destinatario):
            destinatario.remove(request.session['id_Personagem'])
        destinatarios = set(destinatario)
        for destino in destinatarios:
            mensagem = Mensagem()
            mensagem.remetente = personagem
            mensagem.data = datetime.today()
            mensagem.assunto = request.POST['assunto']
            mensagem.mensagem = request.POST['mensagem']
            mensagem.destinatario = destino
            mensagem.save()
        return HttpResponseRedirect('/mensagem/')
    else:
        formMensagem = FormMensagem()
    return TemplatePersonagem(request,'mensagem/criar.html',locals())

@not_character
def ler(request, idMensagem):
    mensagem = Mensagem.objects.get(pk=idMensagem)
    personagem = str(mensagem.destinatario)
    if(request.session['id_Personagem'] != personagem):
        return HttpResponseRedirect('/mensagem/')
    mensagem.status = 'i'
    mensagem.save()
    return TemplatePersonagem(request,'mensagem/ler.html',locals())

@not_character
def excluir(request, idMensagem):
    mensagem = Mensagem.objects.get(pk=idMensagem)
    personagem = str(mensagem.destinatario)
    if(request.session['id_Personagem'] != personagem):
        return HttpResponseRedirect('/mensagem/')
    mensagem = Mensagem.objects.get(pk=idMensagem)
    mensagem.delete()
    return HttpResponseRedirect('/mensagem/')

@not_character
def enviada(request):
    mensagem = Mensagem.objects.filter(remetente=request.session['id_Personagem']).values('assunto','data','id')
    return TemplatePersonagem(request,'mensagem/enviada.html',locals())

@not_character
def lerEnviada(request, idMensagem):
    mensagem = Mensagem.objects.get(pk=idMensagem)
    destinatario = Personagem.objects.get(pk=mensagem.destinatario)
    remetente = mensagem.remetente
    if(request.session['id_Personagem'] != str(remetente.id)):
        return HttpResponseRedirect('/mensagem/')
    return TemplatePersonagem(request,'mensagem/lerEnviada.html',locals())